#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <sys/time.h>
#include <fcntl.h>
#include <sys/wait.h>
#include <error.h>


/*
 * 为路径名动态地分配空间.
 */


#ifdef PATH_MAX
static int pathmax = PATH_MAX;
#else
static int pathmax = 0;
#endif

#define SUSV3	20112L

static long posix_version = 0;

/* if PATH_MAX is indeterminate, no guarantee this is adequate */
#define	PATH_MAX_GUESS 1024

char * path_alloc(int * sizep)	/* also return allocated size, if nonnull */
{
	char * ptr;
	int size;

	if (posix_version == 0)
		posix_version = sysconf(_SC_VERSION);

	if (pathmax == 0) {
		errno = 0;
		if ((pathmax = pathconf("/", _PC_PATH_MAX)) < 0) {
			if (errno == 0)
				pathmax = PATH_MAX_GUESS;	/* it's indeterminate */
			else
				perror("pathconf error for _PC_PATH_MAX);
		}
		else
			pathmax++;	/* add one since it's relative to root */
	}

	if (posix_version < SUSV3)
		size = pathmax + 1;
	else
		size = pathmax;

	if (( ptr = malloc(size)) == NULL)
		perror("malloc error for pathname");

	if (sizep != NULL)
		*sizep = size;

	return ptr;
}

int main()
{
	exit(0);
}



